package com.dhf.framework.web.controller;

import java.util.Date;

import javax.servlet.http.HttpServletRequest;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import com.dhf.framework.base.mybatis.core.page.Pagination;
import com.dhf.framework.common.BaseController;
import com.dhf.framework.web.entity.Developeinfo;
import com.dhf.framework.web.service.DevelopeinfoService;

 /**
 * </b>DevelopeinfoController<br>开发商信息
 * @author HoraceHo
 * @since2017年04月14日 16时17分02秒 星期五 
 * @version:1.0
 */
@Controller
@RequestMapping("/web/developeinfo")
public class DevelopeinfoController extends BaseController{
		
	//获取日志操作类对象LOGGER
	private static Logger LOGGER = LoggerFactory.getLogger(DevelopeinfoController.class);

	//获取管理开发商信息的业务逻辑层方法developeinfoService
	@Autowired
	private DevelopeinfoService developeinfoService;
  		
	
	/**
	  * 查
	  * @Title: queryPageList
	  * @Description: 显示开发商信息列表（developeinfoList.jsp）页面;
	  * @param @param searchEntity
	  * @param @param pagination
	  * @return ModelAndView    返回类型
	  * @throws
	*/
	@RequestMapping(value = "/queryPageList.do")
	public ModelAndView queryPageList(Developeinfo developeinfo, Pagination<Developeinfo> pagination) {
		LOGGER.debug(DevelopeinfoController.class.getName()+":开始查询分页数据！");
		ModelAndView mv = new ModelAndView( "web/developeinfo/developeinfoList" );
		pagination = this.developeinfoService.queryPageList( developeinfo, pagination );
		mv.addObject( "pagination", pagination );
		return mv;
	}
	
	
	/**
	 * 跳转
	 * @Title: toMerge
	 * @Description: 跳转至新增开发商信息或修改开发商信息页面
	 * @param @param entity
	 * @return ModelAndView    返回类型
	 * @throws
	 */
	@RequestMapping(value = "/toMerge")
	public ModelAndView toMerge(Developeinfo entity){
		//新建一个新增或修改开发商数据信息的视图，且视图地址为：web/developeinfo/developeinfoMerg.jsp。
		ModelAndView mv = new ModelAndView("web/developeinfo/developeinfoMerge");
		//数据库中存在entity记录，即ID不为空，则跳转到修改信息界面。
		if(entity.getId()!= null){
			Developeinfo developeinfo =  this.developeinfoService.get( entity.getId() ) ;
			mv.addObject("developeinfo",developeinfo);
		}else{  //数据库中不存在该记录，则跳转至新增信息界面。
			mv.addObject("developeinfo", new Developeinfo());
		}
		return mv;
	}

	
	/**
	 * 增和改
	 * @Title: doMerge
	 * @Description: 新增或修改开发商信息
	 * @param @param request
	 * @param @param entity
	 * @param @param redirectAttributes
	 * @return ModelAndView    返回类型
	 * @throws
	 */
	@RequestMapping(value = "/doMerge")
	public ModelAndView doMerge(HttpServletRequest request, Developeinfo entity, RedirectAttributes redirectAttributes) {
		//修改开发商信息
		if (entity.getId()!=null) {
			LOGGER.debug(DevelopeinfoController.class.getName()+":开始更新数据！");
			this.addMessage(redirectAttributes, "修改数据成功");
			entity.setModifyTime(new Date());
			this.developeinfoService.update( entity );
		} else {  //新增开发商信息
			LOGGER.debug(DevelopeinfoController.class.getName()+":开始新增数据！");
			entity.setCreateTime(new Date());
			this.developeinfoService.add( entity );
			this.addMessage(redirectAttributes, "新增据成功");
		}
		//重定向到queryPageList方法进行从定向到指定页面。
		return new ModelAndView( "redirect:/web/developeinfo/queryPageList.do" );
	}

	
	/**
	 * 删
	 * @Title: delete
	 * @Description:删除开发商数据
	 * @param @param id
	 * @return ModelAndView    返回类型
	 * @throws
	 */
	@RequestMapping(value = "/delete")
	public ModelAndView delete(Long id, RedirectAttributes redirectAttributes) {
		LOGGER.debug(DevelopeinfoController.class.getName()+":开始删除数据！");
        this.developeinfoService.delete( id );
        this.addMessage(redirectAttributes, "删除数据成功");
        return new ModelAndView( "redirect:/web/developeinfo/queryPageList.do" );
	}
}

